home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-08-31 | 841 b | 40 lines | [TEXT/MPS ] |
- PROGRAM Integrate;
-
- USES Clock;
-
- CONST
- epsilon = 1E-8;
- VAR
- result: Double;
- count: LONGINT;
-
- FUNCTION f(x: Double): Double;
- BEGIN
- f:=((x/7+2)*x+1.5)*x+2
- END; {f}
-
- FUNCTION Simpson(a, b: Double; FUNCTION F(x: Double): Double): Double;
- VAR
- i, n: LONGINT;
- s, ss, s1, s2, s4, h: Double;
- BEGIN
- n:=2; h:=(b-a)*0.5;
- s1:=h*(f(a)+f(b)); s2:=0; s4:=4*h*f(a+h); s:=s1+s2+s4;
- REPEAT
- ss:=s; n:=2*n; h:=h*0.5;
- s1:=0.5*s1; s2:=0.5*s2+0.25*s4; s4:=0; i:=1;
- REPEAT
- s4:=s4+f(a+i*h); i:=i+2
- UNTIL i>n;
- s4:=4.0*h*s4; s:=s1+s2+s4
- UNTIL ABS(s-ss)<epsilon*ABS(s);
- Simpson:=s/3
- END; {Simpson}
-
- BEGIN
- ClockInit; ClockStart; count:=1;
- REPEAT
- result:=Simpson(0, 10, f); count:=count+1
- UNTIL count>100000;
- Write(ClockStop DIV 1000:1)
- END. {Integrate}